#引入基本的镜像
FROM node:16.0.0-alpine

ENV NODE_ENV=production

RUN mkdir -p /vueCms

ADD . /vueCms

#设置/vueCms为工作目录
WORKDIR /vueCms

COPY ["package.json", "yarn.lock", "./"]

RUN yarn build

RUN rm package.json yarn.lock

EXPOSE 3000

# 程序启动命令
CMD ["node","./dist/main.js"]
#CMD /bin/bash

##FROM golang:alpine as build-env
#ENV GOROOT /usr/local/go
#ENV GOPATH /data/gopath
#ENV PATH $GOROOT/bin:$PATH
#RUN yum install -y curl
#RUN wget -c https://storage.googleapis.com/golang/go1.15.11.linux-amd64.tar.gz \
#    && tar -C /usr/local -xzf go1.15.11.linux-amd64.tar.gz \
#    && rm -rf go1.15.11.linux-amd64.tar.gz
##RUN mkdir -p /data/go
#RUN ln -sv /usr/local/go/bin/go /bin
#
## 为我们的镜像设置必要的环境变量
#ENV GOPROXY=https://goproxy.cn  \
#    GO111MODULE=on \
#    CGO_ENABLED=0 \
#    GOOS=linux \
#    GOARCH=amd64
#
#RUN mkdir -p /www123
##把当前所有的内容添加到镜像的www123文件夹下
##ADD . /www123
#
## 进入镜像的www123文件夹下，将我们的代码编译成二进制可执行文件app
#RUN cd /www123 && go build -o www123exe .
#
##分阶段，减少体积
##FROM alpine
#
##时区问题
##RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
##RUN apk add --no-cache tzdata \
##    && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
##    && echo "Asia/Shanghai" > /etc/timezone
#
#WORKDIR /www123
##COPY --from=build-env /www123/www123exe /www123
#ADD . /www123
#
## 暴露服务端口
#EXPOSE 8181
#
##启动点
#ENTRYPOINT ./www123exe
# 启动容器时运行的命令
#CMD ["/www123/www123exe"]

#docker run -d -p 8282:3000 -v /usr/local/nginx/html/test/nestjs/public:/vueCms/public/ vue-cms-nestjs:latest


#执行Dockerfile生成镜像
#docker build -f Dockerfile -t vue-cms-nestjs:latest .
#-f flag 是我们的dockerfile
#-t tag 是镜像标签
#最后的（.） 命令式当前文件夹下的Dockerfile

#运行镜像
#-d设置后台运行 8181为访问端口ip 8080项目中设置的端口ip
#docker run -d -p 8282:3000 vue-cms-nestjs:latest



#Docker入门教程101: 基于Docker部署Go项目
##https://zhuanlan.zhihu.com/p/453776691


#生成对的docker镜像文件
#执行文件也成功，但是映射端访问不了，因为服务器的端口号没有开放设置



